home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Revolution - Das Atari CD Magazin 1997
/
Revolution - Das Atari CD Magazin 1.iso
/
software
/
anwendng
/
utility
/
gemlabel
/
dokument
/
protokol.txt
< prev
next >
Wrap
Text File
|
1996-07-21
|
8KB
|
207 lines
Definition des GLMA/MAGL-Protokolls
Dieses Protokoll dient zum Informationsaustausch zwischen GEMLABEL
und einem (bzw. mehreren) Modul-Accessories und wird über die AES
Message-Que realisiert
Für das Protokoll werden Nachrichtennummern von 13000-13300 ver-
wendet
Diese Datei ist hauptsächlich für Programmierer gedacht, die dieses
Protokoll in eigenen Programmen oder MAs (Modulaccessories) unter-
stützen wollen
Aufbau des Message-Buffers:
8 Worte: Msg%(0)-Msg%(7) (Basicschreibweise)
int Msg%[7] (C-Schreibweise)
In dieser Anleitung verwende ich die Basicschreibweise
Nun zur Beschreibung der einzelnen Protokollfunktionen
Nachrichtennamen die mit MA beginnen, werden von einem MA an
Gemlabel geschickt, Nachrichtennummern die mit GM beginnen,
werden von Gemlabel an ein MA geschickt
In Msg%(0) befindet sich die Funktionsnummer, in Msg%(1) befindet
sich die ID des Absenders der Nachricht. Alle anderen Msg%(X) die
nicht angegeben sind, sind auf 0 zu setzen
13000 MG_AERROR
Im MA ist ein Fehler aufgetreten. Falls auf eine Nach-
richt des MA gewartet wird, muß abgebrochen werden
13001 MG_WVER
Über diese Funktion kann die Version von GEMLABEL
erfragt werden
13002 GM_VER
Dies ist die Antwort auf MG_WVER
Msg%(1)=Gemlabel-ID
Msg%(2)=Version von Gemlabel ( 109=1.09, 221=2.21 )
Msg%(3)=Ascii-Wert der Programmart
(F=Freeware, S=Shareware, P=Programmierer-
version, ß=ß-Version)
Msg%(4)=Oberes Wort des Datums
Msg%(5)=Unteres Wort des Datums
Format des Datums: $15051995 bzw. 0x15051995
bedeutet 15.05.1995
13003 SENDKEY
Damit kann Gemlabel ein Tastendruck übergeben werden
Msg%(2)=Scancode oder -1, wenn unbenutzt
Msg%(3)=Asciicode oder -1, wenn unbenutzt
Msg%(4)=Tastaturstatus (Scan, Shift, Ascii, ...), oder
0, wenn unbenutzt
Msg%(5)=User-Magic-Code für benutzerdefinierte Mit-
teilungen im Msg%(6)+Msg%(7), oder 0, wenn
unbenutzt
Msg%(6)+Msg%(7)=Abhängig von Msg%(5)
13010 BGPRINT
Druckt eine Datei im Hintergrund
Die Datei wird Blockweise zum Drucker gesand
( Siehe GM_ASKPAR/MG_SENDPAR/GM_SENDPAR )
Msg%(2)=Puffergröße in Byte, oder -1, wenn die aktuelle
Konfiguration übernommen werden soll
Msg%(3)=Zeitscheibe in ms, oder -1, wenn die aktuelle
Konfiguration übernommen werden soll
Msg%(4)=High-Word der Adresse des Dateinamens
Msg%(5)=Low-Word der Adresse des Dateinamens
Der Dateiname muß mit einem Null-Byte ab-
geschlossen sein (C-String)
Msg%(6)=1 Datei wird nach dem Druck gelöscht
=0 Datei wird nach dem Druck nicht gelöscht
Msg%(7)=Anzahl der Kopien bzw. der Ausdrucke
1=1 Ausdruck, 2=2 Ausdrucke, usw.
Achtung ! : 0 darf nicht übergeben werden !
13013 GM_ASKPAR
Aktuelle Zeitscheibe in ms und Puffergröße beim MA
erfragen
13014 MG_SENDPAR
Antwort des MA auf GM_ASKPAR
Msg%(2)=Zeitscheibe in ms
Für diese Anzahl ms wird während des Ausdrucks
öfters Rechenzeit an die Hauptaplikation abge-
geben
Msg%(3)=Puffer in Byte
So viele Bytes werden als 1 Block zum Drucker
gesand
13015 GM_SENDPAR
Aktuelle Parameter des MA einstellen
Msg%(2)=Neue Zeitscheibe in ms, oder -1, falls diese
nicht gesetzt werden soll
Msg%(3)=Neue Pufferlänge in Byte, oder -1, falls diese
nicht gesetzt werden soll
Msg%(4)-Msg%(7) müssen den Wert -3 haben !
13028 MG_EPRINT
Das MA hat den Ausdruck beendet
Auf diese Nachricht muß bei Druck im Vordergrund gewartet
werden ( Auf MG_AERROR auch ! ). Der Vordergrunddruck ist
noch nicht eingebaut
13030 MG_ASK_CLIPBRD
Adresse des GEMLABEL Klemmbrettpuffers erfragen
13031 GM_SEND_CLIPBRD
Antwort auf MG_ASK_CLIPBRD
Msg%(3)=High-Word der Adresse des Puffers
Msg%(4)=Low-Word der Adresse des Puffers
Dies ist der Stand des GLMA/MAGL-Protokolls am 27.05.95
GEMLABEL bzw. GLBL-Print unterstützen (teilweise) noch 2 weitere
Protokolle:
1) CALCLOCK-Protokoll
Dieses Protokoll stammt vom PC-GEM und wurde im Buch
"Vom Anfänger zum GEM-Profi" der Gebrüder Geiß
(erschienen im Hüthig-Verlag) beschrieben
Dieses Protokoll wird von GLBL-Print zum Hintergrunddruck
unterstützt
Benutzung des Protokolls:
Man sucht mit Appl_Find nach der Applikation "CALCLOCK"
( desshalb heißt GLBL-Print auch CALCLOCK.ACC )
Erhält man eine ID zurück, schickt man CALCLOCK folgende
Nachricht:
Msg%(0)=100
Msg%(1)=ID des Absenders
Msg%(2)=-1
Msg%(3)=Länge des Dateinamens
Msg%(4)=High-Word der Adresse des Dateinamens
Msg%(5)=Low-Word der Adresse des Dateinamens
Msg%(6)=Anzahl der Kopien bzw. Ausdrucke
Msg%(7)=1 Datei wird nach dem Druck gelöscht
=0 Datei wird nach dem Druck nicht gelöscht
CALCLOCK sendet dann, nach Empfang der Nachricht, an Sie
eine Rückmeldung:
Msg%(0)=101
Msg%(1)=ID von CALCLOCK
Msg%(2)-Msg%(7)=0
Auf diese Rückmeldung können Sie warten, oder auch nicht
2) VA/AV-Protokoll
GEMLABEL und GLBL-Print unterstützen einige Funktionen
dieses Protokolls, das von GEMINI her bekannt ist
$4700 AV_PROTOKOLL
(0x4700) Nachfrage, ob eine Applikation etwas von diesem
Protokoll versteht
Msg%(3)= Bit 0 gesetzt: Versteht VA_SETSTATUS
Bit 1 gesetzt: Versteht VA_START
Msg%(6)=High-Word der Adresse des ACC-Namens
Msg%(7)=Low-Word der Adresse des ACC-Namens
Der ACC-Name ist, wie bei Appl_Find,
8 Zeichen lang und mit einem Null-
-Byte abgeschlossen ( C-String )
$4701 VA_PROTOSTATUS
(0x4701) Antwort auf AV_PROTOKOLL
Msg%(6)=High-Word der Adresse des Namens des Senders
Msg%(7)=Low-Word der Adresse des Namens des Senders
Zu Msg%(6)+Msg%(7) siehe auch AV_PROTOKOLL
Die Bedeutung der Bits in Msg%(3)-Msg%(5) lesen Sie
am besten in der Dokumentation zu GEMINI nach, da bei
GEMLABEL/GLBL-Print keines davon gesetzt ist
$4710 AV_SENDKEY
(0x4710) Ein ACC sendet der Hauptapplikation einen Tastendruck
Msg%(3)=Tastaturstatus
Msg%(4)=Scancode der gedrückten Taste
Diese Funktion wird von GEMLABEL nur fehlerhaft unter-
stützt, da bei GEMLABEL Tasturauswertung anders ist,
als sie für die korrekte Unterstützung dieser Funktion
sein sollte. In einer Späteren Version von GEMLABEL
werde ich das aber ändern. Bis es soweit ist kann SENDKEY
des GLMA/MAGL-Protokolls verwendet werden, das auch
später noch funktionieren wird.
$4711 VA_START
(0x4711) Hiermit wird ein ACC aktiviert
Wenn GEMLABEL diese Nachricht erhält wird die Toolbox
das oberste Fenster ( Achtung GEMLABEL läuft nicht als
ACC, aber unter einer Multitasking umgebung könnte es
zu dieser Nachricht kommen )
Bei GLBL-Print wird die Datei in der Kommandozeile im
Hintergrund gedruckt. Falls die Kommandozeile keine
Datei enthält, erscheint der GLBL-Print Hauptdialog
Msg%(3)=High-Word der Adresse der Kommandozeile
Msg%(4)=Low-Word der Adresse der Kommandozeile
Dieser Pointer darf auch 0 sein
Zu diesen Protokollfunktionen sollten Sie auch die Dokumentation
von GEMINI zu rate ziehen
Wenn Sie irgendwelche Fragen zu GEMLABEL oder GLBL-Print haben,
egal ob als Programmierer oder Anwender, können Sie sich an mich
wenden: Volker Janzen
bei Mattes
Haslacher Weg 17
89075 Ulm